
        <html>
			<head>
			     <title>确定目标：利用web分析技术诱捕受害者 - virustracker</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/11946">http://drops.wooyun.org/papers/11946</a></h1>
				
      <p>
        <blockquote>
  <p><a href="https://www2.fireeye.com/rs/848-DID-242/images/rpt-witchcoven.pdf">https://www2.fireeye.com/rs/848-DID-242/images/rpt-witchcoven.pdf</a></p>
</blockquote>

<h1>0x00 介绍</h1>

<hr />

<p>这起活动的策划者积累了大量关于web流量和网站的访客信息，涉及了100多家网站-攻击者会有选择地渗透这些网站，从而接触到他们的受众目标。</p>

<p>在过去的一年中，我们发现可能有政府赞助的攻击者在参与大规模的网络侦察活动。他们在活动中利用了web分析技术来收集、分析和报告从受害网站上的数据，从而被动地收集关于网站访客的信息。这起活动的策划者积累了大量关于web流量和网站的访客信息，涉及了100多家网站-攻击者会有选择地渗透这些网站，从而接触到他们的受众目标。</p>

<p>攻击者、市场商人和经销商每天也会使用web分析技术来获取信息，以便有效地接触到他们的客户和目标受众。在本文中，我们研究了web分析技术造成的负面影响，通过演示攻击者是如何利用相同的工具和方法，通过定向的投放内容和广告，来精确地识别和攻击受害者。</p>

<!--more-->

<p><strong>每天，我们都会浏览网页，访问喜欢的网站</strong></p>

<p>我们承认，有些组织会定期地跟踪我们的在线活动。有的公司会监控我们的点击，从而了解什么样的链接会吸引我们的注意，以及我们在某个网页上停留了多长时间。厂商会跟踪我们的位置信息，从而更好地理解我们作为消费者的需求。当我们点击某个网站上的赞助链接，进入另一个网站时，广告商就能从中获利。购物网站会利用cookie，这样我们在购物网站上浏览过的商品也会出现在其他我们经常访问网站的广告上。一些公司还知道我们使用的是什么计算机系统。后台运行的脚本能够识别浏览器类型，操作系统或移动设备，这样网页才能正常显示。但是，我们很少知道，攻击者也会利用同样的工具来识别和攻击他们的目标。</p>

<p><strong>关键发现</strong></p>

<p>攻击者利用web分析工具和开源工具收集关于目标受害者的信息，以及目标使用的计算机，从而利用特定的木马进行感染。</p>

<p>攻击者会修改特定的网站，将网站访客重定向到一个分析脚本- WITCHCOVEN。这个脚本会收集详细的计算机信息，并安装一个长期跟踪工具- “supercookie”，这个工具会成为“浏览器指纹”的一部分，能够用于识别用户也的计算机。</p>

<p>我们认为，攻击者会通过分析收集到的数据来识别特定的用户，并确定相应的计算机信息，然后部署专门针对这台计算机上存在的软件和计算机配置漏洞。</p>

<p>根据，攻击者收集的数据范围，攻击者的行动约束以及我们的目标评估，我们推测这起行动很可能是与政府有关联的攻击者策划的。</p>

<h1>0x01 行动</h1>

<hr />

<p>今年年初，我们发现有攻击者在利用免费工具和自定义脚本来偷偷地监控网络用户的在线活动。我们认为这些攻击者正在寻找潜在的受害者，了解用户计算机上都有哪些漏洞。商业公司也会使用同样的技术来跟踪自己的客户，确保他们的网站能在不同类型的浏览器上正常运行，但是，攻击者利用这些技术也能更方便的识别受害者，并制定相应的感染方法。</p>

<p>这些攻击者首先会渗透大量的的合法网站。这些网站并不是随机挑选的，而是有针对性的选择，这种方式叫做战略性web渗透。然后，攻击者会修改网站主页（和几个子页面）上的底层HTML代码。在修改了代码后，网站就会悄悄地把访客重定向到另一个网站上，这个网站同样已经被攻击者控制，并挂载了一个分析脚本-WITCHCOVEN。WITCHCOVEN会在后台偷偷地执行，捕捉访客的计算机和浏览器配置（图1），并在用户的计算机上放置一个长期跟踪工具（“suppercookie”）。我们总共发现了100多个网站会重定向用户到十几个WITCHCOVEN服务器上。</p>

<p>当用户访问这些网站时，一段内嵌在网站HTML中的代码就会悄悄地把网站访客重定向到另一个攻击者入侵的网站上。在这个网站上会挂载着WITCHCOVEN脚本，这个脚本会使用分析脚本收集用户计算机上的技术信息。截至2014年11月初，我们总共发现了14个网站上挂载着WITCHCOVEN分析脚本。</p>

<p>我们认为这些攻击者正在寻找潜在的受害者，了解用户计算机上都有哪些漏洞。</p>

<p>这个脚本会向攻击者提供用户计算机上的应用信息。WITCHCOVEN使用了大量的开源web工具来获取这些信息，包括软件版本。这些web工具都是免费的，并且网站设计师也经常使用这些或相似的工具来改善用户体验。比如，网站可能会定期收集用户的浏览器类型和版本，从而能在用户的浏览器上正常显示。</p>

<p>下面是WITCHCOVEN代码中内嵌的一些web工具，以及这些工具收集的数据：</p>

<ul>
<li>“detect Office”模块来自一个浏览器攻击利用框架（BEF），这是一个开源的渗透测试工具，能够通过测试浏览器对不同ActiveX对象的响应，判断计算机上的MS Ofiice版本。</li>
<li>PluginDetect是一个基于JavaScript的web工具，能够检测不同web浏览器插件的类型和版本，比如Java，Flash，Reader和Shockwave。</li>
</ul>

<p><strong>WITCHCOVEN– 分析用户计算机并跟踪用户</strong></p>

<p><img src="http://static.wooyun.org//drops/20160106/201601061501281578112.jpg" alt="p1" /> 图1-战略性web渗透，重定向到WITCHCOVEN分析脚本</p>

<p>除了收集关于安装应用、浏览器插件的数据和版本信息，WITCHCOVEN脚本还使用了另外一个开源工具-“evercookie”。“evercookie”设计用于在用户的计算机上创建“相当长久的cookies”，通过：</p>

<ul>
<li>在计算机的多个位置上创建cookies</li>
<li>只要计算机上还留有任何一个cookie，就会重建已经删除的coolie</li>
<li>尝试安装到计算机上的所有浏览器</li>
</ul>

<p>因此，evercookies也叫做“supercookies”（因为使用了多种储存机制）或“zombie cookies”（因为在删除后可以重建）。</p>

<p>简而言之，evercookie能够长期识别和跟踪某个网站访客，并且对于大多数用户而言，是无法清除这个工具的。evercookie和WITCHCOVEN脚本收集到的数据会使用HTTP POST请求发回到被攻破的web服务器。</p>

<h1>0x02 COOKIES,第三方COOKIES和SUPERCOOKIES</h1>

<p>网站经常会使用HTTP cookies来跟踪访客的操作。比如，新闻网站可能会跟踪用户的地区偏好，电商网站可能会跟踪用户购物车中商品。一般网站都会使用常规的HTTP cookies来改善用户的浏览体验。</p>

<p>第三方HTTP cookie可以由第三方提供商进行设置和读取（比如广告公司和数据分析服务提供商），这些提供商还会在其他网站上放置内容。因为这些第三方提供商托管的内容包括多个网站，所以，他们的cookie也能够跟踪这些网站上的用户，在体育网站和购物网站上托管内容的提供商就能够根据第三方cookie中的数据，判断这名用户是不是在同时访问这两种网站。经过一段时间，通过注意用户访问的网站类型，即使不知道用户的身份，但是这些公司仍然可以确定用户档案（年龄，收入，位置，兴趣）。虽然这些cookie并不是恶意的，但是，有些用户认为是对隐私的侵犯。</p>

<p>无论常规cookie还是第三方cookie都是储存在用户的web浏览器中；当今的浏览器可以通过配置，定期删除cookie或拦截某种类型的cookie。“supercookie”指的是用其他方法存储的cookie，比如Flash cookies。在大多数情况下，这些cookie无法通过清除浏览器缓存来删除、supercookie有特殊的标识符，因此，可以作为长期跟踪和识别某个用户的方法，即使用户尝试拦截或删除cookie也无济于事。</p>

<h1>0x03 这种手段是恶意的吗？</h1>

<hr />

<p>虽然，WITCHCOVEN的分析活动可以视为有入侵性的，但是，目前为止我们还没有发现确切的恶意活动。没有投放漏洞代码，没有攻击任何网站访客。如我们所说的，这些分析和跟踪技术也可以用于合法用途，以便优化用户体验，支持营销、人口统计和销售分析。那么为什么这些活动会引起我们的注意呢？</p>

<p>首先，虽然很多网站都会分析和跟踪用户，但是这些活动都是通过第三方cookie、商业广告和分析工具实现的。在这个例子中，攻击者虽然使用了公开的工具，但是这些工具的目的很唯一。evercookie的使用说明这些攻击者想要长期地识别和跟踪用户，并且不受隐私浏览器的影响，也无法删除这些cookie。这就不能算是“正常的”web分析了。</p>

<p>第二，这些把访客重定向到WITCHCOVEN脚本的合法网站本身就遭到了入侵。正常的营销活动和web流量分析活动可不会这样做；有人蓄意地在100多个合法网站上设置了重定向代码，从而分析这些网站的访客。</p>

<p>最后，虽然重定向代码传播的范围很广，但是这些受害网站并不是随机选择的，而是有模式选择的。因而，我们认为这些活动也不是随机性的，而是，出于特定的目的，针对特定的用户。</p>

<p>通过这些发现，我们不禁要问：为什么有人要通过这种方式来收集这些特定的数据呢？这起活动的目的是什么？</p>

<p>我们认为，攻击者会利用WITCHCOVEN脚本和evercookie收集的数据，结合从HTTP日志中收集到的基本浏览器数据，来识别感兴趣的用户，从而根据用户计算机系统上的漏洞，利用专门的漏洞进行攻击。</p>

<h1>0x04 拼图</h1>

<hr />

<p>为什么这些无害的信息收集活动会是针对性攻击呢？根据WITCHCOVEN收集的数据。</p>

<p>除了WITCHCOVEN本身收集的数据，这些攻击者还能接触到其他关于用户浏览器的数据，有一部分是通过挂载WITCHCOVEN脚本的服务器上正常的HTTP日志中获取的。这些数据中至少会包含下面的信息：</p>

<ul>
<li>用户的IP</li>
<li>浏览器类型和版本（通过User-Agent标头判断）</li>
<li>浏览器语言设置（通过Accept-Language标头判断）</li>
<li>访客是如何到达网站的（通过Referer标头判断）</li>
</ul>

<p>虽然，我们不知道攻击者是否会使用这些日志数据，但是，他们至少已经取得了这些数据。通过总结攻击者获取到的数据（表1），我们就能知道他们是如何构建受害者档案。攻击者会利用这些数据来识别和分析用户，以便在将来进行恶意活动。</p>

<p>表1-攻击者掌握的数据与可能用途</p>

<p>|数据|来源|可能用途| |MS Office版本|WITCHCOVEN脚本|识别旧版，未修复或存在漏洞的应用| |浏览器插件版本（Java，Flash等）|WITCHCOVEN脚本|识别旧版，未修复或存在漏洞的应用| |evercookie特殊标识符|evercookie（WITCHCOVEN脚本）|识别特定“用户”（即使身份未知）| |evercookie数据|evercookie（WITCHCOVEN脚本）|首次访问被攻破网站的时间；通过时间戳联系到HTTP日志，从而识别访客的IP地址| |引用网站|WITCHCOVEN脚本和HTTP日志|帮助进一步识别或精炼用户档案| |IP地址|HTTP日志|潜在受害者的源网络；可能识别感兴趣的企业和组织| |浏览器类型/版本|HTTP日志|识别旧版，未修复或存在漏洞的应用；识别存在其他漏洞的浏览器（比如Flash漏洞）| |用户语言|HTTP日志|帮助进一步识别或精炼用户档案|</p>

<h1>0x05 理清头绪</h1>

<hr />

<p>虽然，上面的信息足够说明某个用户的习惯，但是这仅仅代表了一个网站的一个随机用户。攻击者入侵了100多个网站，每个网站每天会接收上千名访客。我们猜测，如果攻击者想要利用这些数据来针对特定的受害者，他们需要通过一些手段来分析WITCHCOVEN脚本收集到的这些数据（和web服务器的日志文件），从而识别接下来的具体目标。</p>

<p>我们并不清楚攻击者是如何使用或处理这些数据。但是，考虑到他们在这一年中收集到的数据数量，他们很可能需要用到大规模的数据管理和分析系统。至少，会涉及到目标数据库，也可能会web分析收集到的数据，从而帮助识别感兴趣到的目标。为此，他们可能使用像客户关系管理（CRM）数据库这样的web分析工具。CRM能够允许企业追踪销售额，客户反馈和在线营销活动。攻击者可以根据特定的标准，挖掘收集到的数据，搜索潜在的受害者。提炼过程可能如下：</p>

<ol>
<li>判断目标类型的受害者是否在访问被攻破的网站</li>
<li>判断目标受害者在访问的其他网站（从而找到新的收集点）</li>
<li>识别特定的受害者</li>
</ol>

<p><img src="http://static.wooyun.org//drops/20160106/2016010615013197136214.png" alt="p2" /> 图2-目标提炼示例</p>

<h1>0x06 利用这些数据来投放木马</h1>

<hr />

<p>一旦根据信息确定了特定的目标，我们认为攻击者就会设计和部署定制木马来增加入侵的成功率。目前，我们还没有发现任何漏洞攻击活动，但是这可能是由于攻击者攻击范围很小，致使我们在某个受害者那里发现漏洞和木马有效载荷的概率很低。</p>

<p>虽然没有确凿的活动，但是，攻击者收集的信息可以用来根据WITCHCOVEN找到的漏洞信息，部署自定义木马，投放到受害者的计算机上。比如：</p>

<ul>
<li>攻击者可能注意到用户在运行过期的Aobe Flash，在这个Flash版本中存在某个漏洞。能够针对已知漏洞的能力意味着攻击者不需要冒着暴露0-day漏洞的风险。</li>
<li>通过过期软件，攻击者还能了解潜在受害者的安全意识，从而有针对性的制定后续活动，或使用特定的木马。攻击者可能会利用标准的后门攻击防范意识不强的受害者，而使用高级后门攻击警觉性较高的用户。</li>
<li>如果用户运行的都是打好补丁的软件，现有的漏洞就无法发挥作用，这样攻击者就需要开发、购买或部署0-day漏洞。这样，攻击者只有在攻击少量高价值目标时，才会用到0-day漏洞。</li>
</ul>

<p><strong>利用受害者档案制定针对性活动</strong></p>

<p>在本文中，我们讨论了攻击者使用了一种小范围方法来选择受害者。其他的一些网络威胁小组也会利用脚本或其他服务器端的代码来分析潜在的受害者，并在小范围内投放定制漏洞。比如，网络犯罪分子会创建包含有定制漏洞代码的网站来感染特定的访客，可能是根据某个地区（根据IP地址），或每10个访客感染一次（为了避免恶意活动的暴露）。</p>

<p>有些技术能力比较强的政府小组也使用了类似的分析脚本来有效地投放漏洞和相关的有效载荷。</p>

<ul>
<li>在Clandestine Wolf行动中，中国APT小组APT3在部署Flash 0-day之前，就首先使用了一个分析脚本 。</li>
<li>在Russian Doll行动中，可能是俄罗斯小组APT28在部署2个0-day漏洞前，首先收集了潜在受害者的系统信息。</li>
</ul>

<p>在这些案例中，分析脚本只是向目标计算机投放漏洞。这种技术能增加行动成功率，降低被发现的概率，因为只有很少一部分受害者会接收到漏洞，并且能拖慢研究人员发现0-day漏洞的速度。</p>

<p><strong>收集到的数据是如何使用的</strong></p>

<p><img src="http://static.wooyun.org//drops/20160106/201601061501337418131.jpg" alt="p3" /> 图5-数据的可能使用方法</p>

<h1>0x07 有效、高效且隐蔽</h1>

<hr />

<p>我们认为这次活动是政府小组策划的，他们的目标是收集全球数据，支持未来的网络行动。原因如下：</p>

<table>
<thead>
<tr>
  <th align="left">A</th>
  <th align="left">B</th>
</tr>
</thead>
<tbody>
<tr>
  <td align="left">行动范围</td>
  <td align="left">这次行动通过入侵世界各地的网站来收集数据。这样规模的数据收集活动需要大量的资源来分析信息和识别目标。从这次活动的范围也可以看出，攻击者需要数据来满足情报需求，可能是某个大国政府。</td>
</tr>
<tr>
  <td align="left">行动约束</td>
  <td align="left">战略性web渗透很常见，但是这次行动的特殊之处在于缺少漏洞投放或木马投放活动。如果攻击者使用收集到的数据来确定受害者，这就说明这个小组想要限制工具的曝光度，并保证行动安全-这两点都表明，这是一起有特定情报需求的长期行动。</td>
</tr>
<tr>
  <td align="left">可能的目标</td>
  <td align="left">根据被攻击的网站，攻击者的目标可能是对政府情报感兴趣的个人。</td>
</tr>
</tbody>
</table>

<p>前面我们已经提到，我们发现了100多个网站会重定向访客到WITCHCOVEN分析脚本。总的来看，这些网站并不是随机选择 ，虽然种类繁多，这些网站都有共同得到兴趣点。这些网站主要是吸引对下面这些领域感兴趣的用户：国际旅行，外交，能源生产政策，国际经济，以及在外国政府就职的个人-所有这些目标都与国家战略利益相关（参照图4被攻破网站的行业划分）。</p>

<p><img src="http://static.wooyun.org//drops/20160106/2016010615013594864412.png" alt="p4" /></p>

<p><img src="http://static.wooyun.org//drops/20160106/201601061501371673859.png" alt="p5" /></p>

<p>被攻击网站的地理位置分布</p>

<h1>0x08 可能的预期目标</h1>

<hr />

<p><strong>美国和欧洲的政府官员和高层</strong></p>

<p>我们认为，通过被攻击的网站就能看出，攻击者对行政官员，外交官，政府官员和军方人士很感兴趣，尤其是美国和欧洲。被攻击的网站包括Visa服务公司，美国大使馆，可能会吸引美国官员前往俄罗斯、中东和非洲。在欧洲被攻击的网站可能会吸引对欧洲政治、外交、研究机构和欧美商业感兴趣的用户。此外，通过被攻击的网站还能看出攻击者的目标涉及能源发现，生成和技术行业，尤其是天然气提取和其他能源相关的活动。根据其他被攻击的网站，攻击者感兴趣的目标可能包括：</p>

<ul>
<li>美国、西班牙、维也纳、布鲁塞尔的外交官和商业人士，以及一些跨国机构的首脑</li>
<li>与能源策略、气候变化，尤其是能源研究和咨询组织相关的个人</li>
<li>拉美政府官员</li>
<li>欧洲经济学家</li>
<li>与乌克兰和格鲁吉亚共和国相关的个人和组织</li>
</ul>

<p><strong>关注东欧与俄罗斯组织</strong></p>

<p>最后，其他网站表明，攻击者感兴趣的个人与下列相关：</p>

<ul>
<li>俄罗斯的一家大型能源公司</li>
<li>俄罗斯文化组织和信息资源</li>
<li>俄罗斯大使馆的一个网站</li>
<li>乌克兰军队和边防</li>
<li>一家在格鲁吉亚共和国运营的媒体组织</li>
</ul>

<p><strong>相似报告</strong></p>

<ul>
<li><a href="https://securelist.com/analysis/publications/65545/the-epic-turla-operation/">https://securelist.com/analysis/publications/65545/the-epic-turla-operation/</a> Accessed 28 Oct 2015</li>
<li><a href="http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/waterbug-attack-group.pdf">http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/waterbug-attack-group.pdf</a></li>
<li><a href="http://flashcritic.com/state-report-reveal-130-websites-used-travel-related-watering-hole-attacks/">http://flashcritic.com/state-report-reveal-130-websites-used-travel-related-watering-hole-attacks/</a></li>
</ul>

<p><strong>间接伤害：非预期受害者</strong></p>

<p>通过被攻击的网站来看，攻击者只对特定类型的目标感兴趣。但是，我们的客户检测发现WITCHCOVEN的影响要更广泛。SWC经常会造成附带伤害，而这些攻击者也攻击了一些无意中访问相应网站的无关受害者。</p>

<p>在我们的客户中，几乎所有的行业都检测到了WITCHCOVEN。教育、政府、金融服务、能源和娱乐业是最受影响的。图5中列出了从2015年3月8日-10月31日，FireEye客户中收到WITCHCOVEN警告的各行业比例。</p>

<p><img src="http://static.wooyun.org//drops/20160106/201601061501396853961.jpg" alt="p6" /> 图5-2015年3月8日-10月31日，FireEye客户中收到WITCHCOVEN警告的各行业比例</p>

<h1>0x09 应对办法</h1>

<hr />

<p>客户经常问我们有什么办法能对抗这起恶意网络活动。对于本文中介绍的这次活动，应对办法是一项挑战，因为攻击者是通过用户的web浏览活动来收集潜在的受害者信息。攻击者使用的脚本和方法也是合法网站在用于分析客户和改善浏览体验的方法。</p>

<p>虽然，这种分析活动感觉很有侵入性，但是受害者的计算机实际上并没有被渗透。个人和组织可以拦截脚本执行，或使用第三方cookie，从而加强网页浏览的隐私性，或使用匿名化服务（比如TOR浏览器）来隐藏自己的身份。但是，这些方法实施起来都很麻烦，并且在拦截恶意活动的同时，也阻止了合法网站的内容加载。</p>

<p>对于组织而言，可以专注于检测或阻止后续的攻击活动，包括禁用不必要的插件，保证给系统和应用打补丁，并监控主机和网络中是否存在可疑流量。</p>

<h1>0x0A 附录:技术细节</h1>

<hr />

<p>WITCHCOVEN 分析脚本 (示例MD5: 634438A50AE1990C4F8636801C410460) 使用了JavaScript编写。这个脚本中包含有 jQuery JavaScript库，这个库经过混淆去除了变量名称。完整的脚本很长，但是主要是由一些相似的公开脚本组成的，包括 evercookie, PluginDetect 和 “detect Office” 模块。</p>

<p>脚本收集的信息都列在了表1中，这些信息会编码到一个URL请求中，请求的是挂载WITCHCOVEN脚本的网站。</p>

<p>表2-URL请求变量</p>

<table>
<thead>
<tr>
  <th align="left">变量名称</th>
  <th align="left">变量数据</th>
</tr>
</thead>
<tbody>
<tr>
  <td align="left">sid</td>
  <td align="left">Adobe Shockwave版本</td>
</tr>
<tr>
  <td align="left">fid</td>
  <td align="left">Adobe Flash 版本</td>
</tr>
<tr>
  <td align="left">aid</td>
  <td align="left">Adobe Reader 版本</td>
</tr>
<tr>
  <td align="left">mid</td>
  <td align="left">Microsoft Office 版本</td>
</tr>
<tr>
  <td align="left">jaid</td>
  <td align="left">Oracle Java 版本</td>
</tr>
<tr>
  <td align="left">rid</td>
  <td align="left">HTTP Referer</td>
</tr>
<tr>
  <td align="left">cid</td>
  <td align="left">evercookie supercookie 首次设置的时间（epoch时间），或者如果没有设置，就是当前时间</td>
</tr>
<tr>
  <td align="left">cart_id</td>
  <td align="left">55（静态值，根据WITCHCOVEN 实例变化）</td>
</tr>
</tbody>
</table>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          